import axios from 'axios';
import setting from './base';
import { Modal, Message } from '@arco-design/web-vue';

// 设置统一的url   VITE_API_BASE_URL
// api
// http://192.168.110.115:8083/
axios.defaults.baseURL = import.meta.env.DEV
  ? '/api'
  : import.meta.env.VITE_API_BASE_URL;
axios.defaults.headers.common['Content-Type'] =
  'application/json;charset=UTF-8';

/* 请求拦截器 */
axios.interceptors.request.use(
  (config) => {
    // 添加token到header
    const token = setting.takeToken();
    if (token) {
      config.headers[setting.tokenHeaderName] = token;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

/* 响应拦截器 */
axios.interceptors.response.use(
  (res) => {
    // 登录过期处理
    if (res.data.code === 401) {
      if (res.config.url === setting.menuUrl) {
        //   判断当前
        // goLogin();
      } else {
        Modal.destroyAll();
        Modal.info({
          title: '系统提示',
          content: '登录状态已过期, 请退出重新登录!',
          okText: '重新登录',
        });

        // Modal.info({
        //   title: '系统提示',
        //   content: '登录状态已过期, 请退出重新登录!',
        //   okText: '重新登录',
        //   ok: () => {
        //     // goLogin(true);
        //   },
        // });
      }
      return Promise.reject(new Error(res.data.msg));
    } else if (res.data.code !== 200 && res.data.code) {
      Message.error(res.data.msg);
      return Promise.reject(new Error(res.data.msg));
    }
    // token自动续期
    const access_token = res.headers[setting.tokenHeaderName];
    if (access_token) {
      // pagesetting.cacheToken(access_token);
    }
    return res.data;
  },
  (error) => {
    return Promise.reject(error);
  }
);
